﻿using System;

class Program
{
    static void Main()
    {
        Console.WriteLine("请输入两个正整数：");

        // 读取第一个数
        Console.Write("第一个数 (m): ");
        if (!int.TryParse(Console.ReadLine(), out int m) || m <= 0)
        {
            Console.WriteLine("输入无效，请输入正整数。");
            return;
        }

        // 读取第二个数
        Console.Write("第二个数 (n): ");
        if (!int.TryParse(Console.ReadLine(), out int n) || n <= 0)
        {
            Console.WriteLine("输入无效，请输入正整数。");
            return;
        }

        // 计算最大公约数和最小公倍数
        int gcd = CalculateGCD(m, n);
        int lcm = CalculateLCM(m, n, gcd);

        // 输出结果
        Console.WriteLine($"最大公约数 (GCD): {gcd}");
        Console.WriteLine($"最小公倍数 (LCM): {lcm}");
    }

    // 计算最大公约数（使用欧几里得算法）
    static int CalculateGCD(int a, int b)
    {
        while (b != 0)
        {
            int temp = b;
            b = a % b;
            a = temp;
        }
        return a;
    }

    // 计算最小公倍数
    static int CalculateLCM(int a, int b, int gcd)
    {
        // 使用公式：LCM(a, b) = (a * b) / GCD(a, b)
        return (a * b) / gcd;
    }
}